Many devices utilize nonvolatile memory to store information that is later updated or changed. For example, smart card technology utilizes nonvolatile memory in a small embedded integrated circuit (e.g., embedded in a pocket-sized card) to store regularly updated information, which allows for advanced functionality such as payment, data storage, or authentication. Typically, in order to update the information stored in nonvolatile memory on such devices (e.g., smart cards, prepaid vending machines, ski-pass devices, etc.), the devices communicate with a data source (e.g., a smart card reader) using either contact communication or contactless communication. For example, a smart card can communicate with a smart card reader either when inserted into the smart card reader or by using RF induction or near-field communication to communicate with the smart card reader without contact.